#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
    char s[100] = { 0 };
    int a, b;
    scanf("%d%d", &a, &b);
    for (int i = 0; i < b; i++)
    {
        if (i == 0)
            getchar();
        gets(s);
        int sum = 1;
        int num = pow(2, a - 1);
        for (int j = 0; j < a; j++)
        {
            if (s[j] == 'n')
                sum += num;
            num /= 2;
        }
        printf("%d\n", sum);
    }
}
//#include <stdio.h>
//#include <math.h>
//int main()
//{
//    int arr[5] = { 0 };
//    int max = 0;
//    int min = 0;
//    int n;
//    for (int i = 1; i < 5; i++)
//    {
//        scanf("%d", &arr[i]);
//        if (arr[i] > max)
//            max = arr[i];
//    }
//    scanf("%d", &min);
//    scanf("%d", &n);
//    int count = 0;
//    int flag = 0;
//    for (int i = 1; i < 5; i++)
//    {
//        if (arr[i] < min)
//        {
//            count++;
//            flag = i;
//        }
//        else if (fabs(max - arr[i]) > n)
//        {
//            count++;
//            flag = i;
//        }
//    }
//    if (count >= 2)
//    {
//        printf("Warning: please check all the tires!");
//    }
//    else if (count == 1)
//    {
//        printf("Warning: please check #%d!", flag);
//    }
//    else
//        printf("Normal");
//    return 0;
//}
//#include <stdio.h>
//#include <string.h>
//
//void is(char* s, int len)
//{
//    int flag1 = 0;
//    int flag2 = 0;
//    int count = 0;
//    char* left = s;
//    char* right = s + len;
//    while (*left != ',')
//    {
//        left++;
//    }
//    *left = '\0';
//    if (strcmp(left - 3, "ong") == 0)
//        flag1 = 1;
//    *left = ',';
//    *right = '\0';
//    if (strcmp(right - 3, "ong") == 0)
//        flag2 = 1;
//    while (right--)
//    {
//        if (*right == ' ')
//            count++;
//        if (count == 3)
//            break;
//    }
//    *(right + 1) = '\0';
//    if (flag1 == 1 && flag2 == 1)
//    {
//        strcat(right, "qiao ben zhong.");
//        printf("%s\n", s);
//    }
//    else
//    {
//        printf("Skipped\n");
//    }
//
//}
//int main()
//{
//    int n;
//    scanf("%d", &n);
//    getchar();
//    char s[1001] = { 0 };
//    for (int i = 0; i < n; i++)
//    {
//        gets(s);
//        int len = strlen(s);
//        is(s, len - 1);
//    }
//    return 0;
//}
//#include <stdio.h>
//#include <string.h>
//int main()
//{
//	char s[1][100] = { 0 };
//	gets(s[0]);
//	char s1[2] = { ',','\0' };
//	char* ret = strstr(s[0], s1);
//	ret -= 3;
//	if (strncmp(ret,"ong",3)==0)
//	printf("%s", ret);
//	return 0;
//}
//#include <stdio.h>
//#include <string.h>
//int main()
//{
//    int n;
//    char* ret, * tmp;
//    char s[20][100] = { 0 };
//    char s1[2] = { ',','\0' };
//    char s2[2] = { '.','\0' };
//    scanf("%d", &n);
//    for (int i = 0; i < n; i++)
//    {
//        gets(s[i]);
//    }
//    for (int i = 0; i < n; i++)
//    {
//        ret = strstr(s[i], s1);
//        tmp = strstr(s[i], s2);
//        tmp -= 3;
//        ret -= 3;
//        if (strncmp(ret, "ong", 3) == 0&&strncmp(tmp,"ong",3)==0)
//            printf("%s\n", s[i]);
//        else
//            printf("skilled\n");
//    }
//    return 0;
//}